﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SIMCObjetoNegocio;

namespace SIMCRepositorio
{
    public class RepositorioAtributo : Database, IRepositorioAtributo
    {
        public Atributo Buscar(string p_Atributo)
        {
            try
            {
                var query = from atributo in Context.cla_atributos
                            where atributo.cat_scodigo == p_Atributo
                            select new Atributo
                            {
                                Id = atributo.cat_scodigo,
                                Descripcion = atributo.cat_sdescripcion,
                                ValorPorDefecto = atributo.cat_svaldef,
                                Multivaluado = atributo.cat_cmultival == Valores.True ? true : false,
                                Obligatorio = atributo.cat_cobligatorio == Valores.True ? true : false,
                                Orden = atributo.cat_iorden,
                                _Tipo = atributo.cat_ctipo
                            };

                Atributo value = query.FirstOrDefault();

                if (value != null)
                {
                    value.CalificadoresDeAtributos = DatabaseAccess.CalificadorRepositorio.Buscar(value.Id, Valores.CalificadorAtributo);
                    value.CalificadoresDeValores = DatabaseAccess.CalificadorRepositorio.Buscar(value.Id, Valores.CalificadorValor);
                    value.Valores = DatabaseAccess.ValorRepositorio.BuscarLista(value.Id);
                }

                return value;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }

    public interface IRepositorioAtributo
    {
        Atributo Buscar(string p_Atributo);
    }
}
